<!DOCTYPE html>












  


<html class="theme-next pisces use-motion" lang="zh-CN">
<head><meta name="generator" content="Hexo 3.8.0">
  <!-- hexo-inject:begin --><!-- hexo-inject:end --><meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
<meta name="theme-color" content="#222">




  
  
    
    
  <script src="/lib/pace/pace.min.js?v=1.0.2"></script>
  <link rel="stylesheet" href="/lib/pace/pace-theme-minimal.min.css?v=1.0.2">





















<link rel="stylesheet" href="/lib/font-awesome/css/font-awesome.min.css?v=4.6.2">

<link rel="stylesheet" href="/css/main.css?v=7.0.1">


  <link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png?v=7.0.1">


  <link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png?v=7.0.1">


  <link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png?v=7.0.1">


  <link rel="mask-icon" href="/images/logo.svg?v=7.0.1" color="#222">







<script id="hexo.configurations">
  var NexT = window.NexT || {};
  var CONFIG = {
    root: '/',
    scheme: 'Pisces',
    version: '7.0.1',
    sidebar: {"position":"left","width":300,"display":"post","offset":12,"onmobile":false,"dimmer":false},
    back2top: true,
    back2top_sidebar: true,
    fancybox: false,
    fastclick: false,
    lazyload: false,
    tabs: true,
    motion: {"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}},
    algolia: {
      applicationID: '',
      apiKey: '',
      indexName: '',
      hits: {"per_page":10},
      labels: {"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}
    }
  };
</script>


  




  <meta name="description" content="计算机视觉基础Pipeline 输入数据（图像） 预处理（Noise reduction; color correction; scaling） selecting areas of interest(face recognition; image cropping) feature extraction(finding facial markers(mouth eyes)) prediction">
<meta name="keywords" content="计算机视觉,深度学习">
<meta property="og:type" content="article">
<meta property="og:title" content="计算机视觉入门(一)">
<meta property="og:url" content="https://duolk.gitee.io/2019/03/25/计算机视觉入门/index.html">
<meta property="og:site_name" content="朝花夕拾">
<meta property="og:description" content="计算机视觉基础Pipeline 输入数据（图像） 预处理（Noise reduction; color correction; scaling） selecting areas of interest(face recognition; image cropping) feature extraction(finding facial markers(mouth eyes)) prediction">
<meta property="og:locale" content="zh-CN">
<meta property="og:updated_time" content="2019-03-25T12:15:34.034Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="计算机视觉入门(一)">
<meta name="twitter:description" content="计算机视觉基础Pipeline 输入数据（图像） 预处理（Noise reduction; color correction; scaling） selecting areas of interest(face recognition; image cropping) feature extraction(finding facial markers(mouth eyes)) prediction">



  <link rel="alternate" href="/atom.xml" title="朝花夕拾" type="application/atom+xml">




  <link rel="canonical" href="https://duolk.gitee.io/2019/03/25/计算机视觉入门/">



<script id="page.configurations">
  CONFIG.page = {
    sidebar: "",
  };
</script>

  <title>计算机视觉入门(一) | 朝花夕拾</title>
  












  <noscript>
  <style>
  .use-motion .motion-element,
  .use-motion .brand,
  .use-motion .menu-item,
  .sidebar-inner,
  .use-motion .post-block,
  .use-motion .pagination,
  .use-motion .comments,
  .use-motion .post-header,
  .use-motion .post-body,
  .use-motion .collection-title { opacity: initial; }

  .use-motion .logo,
  .use-motion .site-title,
  .use-motion .site-subtitle {
    opacity: initial;
    top: initial;
  }

  .use-motion .logo-line-before i { left: initial; }
  .use-motion .logo-line-after i { right: initial; }
  </style>
</noscript><!-- hexo-inject:begin --><!-- hexo-inject:end -->

</head>

<body itemscope itemtype="http://schema.org/WebPage" lang="zh-CN">

  
  
    
  

  <!-- hexo-inject:begin --><!-- hexo-inject:end --><div class="container sidebar-position-left page-post-detail">
    <div class="headband"></div>

    <header id="header" class="header" itemscope itemtype="http://schema.org/WPHeader">
      <div class="header-inner"><div class="site-brand-wrapper">
  <div class="site-meta">
    

    <div class="custom-logo-site-title">
      <a href="/" class="brand" rel="start">
        <span class="logo-line-before"><i></i></span>
        <span class="site-title">朝花夕拾</span>
        <span class="logo-line-after"><i></i></span>
      </a>
    </div>
    
    
  </div>

  <div class="site-nav-toggle">
    <button aria-label="切换导航栏">
      <span class="btn-bar"></span>
      <span class="btn-bar"></span>
      <span class="btn-bar"></span>
    </button>
  </div>
</div>



<nav class="site-nav">
  
    <ul id="menu" class="menu">
      
        
        
        
          
          <li class="menu-item menu-item-home">

    
    
    
      
    

    

    <a href="/" rel="section"><i class="menu-item-icon fa fa-fw fa-home"></i> <br>首页</a>

  </li>
        
        
        
          
          <li class="menu-item menu-item-tags">

    
    
    
      
    

    

    <a href="/tags/" rel="section"><i class="menu-item-icon fa fa-fw fa-tags"></i> <br>标签</a>

  </li>
        
        
        
          
          <li class="menu-item menu-item-categories">

    
    
    
      
    

    

    <a href="/categories/" rel="section"><i class="menu-item-icon fa fa-fw fa-th"></i> <br>分类</a>

  </li>
        
        
        
          
          <li class="menu-item menu-item-archives">

    
    
    
      
    

    

    <a href="/archives/" rel="section"><i class="menu-item-icon fa fa-fw fa-archive"></i> <br>归档</a>

  </li>

      
      
    </ul>
  

  

  
</nav>



  



</div>
    </header>

    
  
  
  
  

  

  <a href="https://github.com/duolk" class="github-corner" title="Follow me on GitHub" aria-label="Follow me on GitHub" rel="noopener" target="_blank"><svg width="80" height="80" viewbox="0 0 250 250" style="fill: #222; color: #fff; position: absolute; top: 0; border: 0; right: 0;" aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"/><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"/><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"/></svg></a>



    <main id="main" class="main">
      <div class="main-inner">
        <div class="content-wrap">
          
            

          
          <div id="content" class="content">
            

  <div id="posts" class="posts-expand">
    

  

  
  
  

  

  <article class="post post-type-normal" itemscope itemtype="http://schema.org/Article">
  
  
  
  <div class="post-block">
    <link itemprop="mainEntityOfPage" href="https://duolk.gitee.io/2019/03/25/计算机视觉入门/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="name" content="风絮">
      <meta itemprop="description" content="柴门闻犬吠，风雪夜归人">
      <meta itemprop="image" content="/images/avatar.png">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="朝花夕拾">
    </span>

    
      <header class="post-header">

        
        
          <h1 class="post-title" itemprop="name headline">计算机视觉入门(一)

              
            
          </h1>
        

        <div class="post-meta">
          <span class="post-time">

            
            
            

            
              <span class="post-meta-item-icon">
                <i class="fa fa-calendar-o"></i>
              </span>
              
                <span class="post-meta-item-text">发表于</span>
              

              
                
              

              <time title="创建时间：2019-03-25 20:12:42 / 修改时间：20:15:34" itemprop="dateCreated datePublished" datetime="2019-03-25T20:12:42+08:00">2019-03-25</time>
            

            
              

              
            
          </span>

          
            <span class="post-category">
            
              <span class="post-meta-divider">|</span>
            
              <span class="post-meta-item-icon">
                <i class="fa fa-folder-o"></i>
              </span>
              
                <span class="post-meta-item-text">分类于</span>
              
              
                <span itemprop="about" itemscope itemtype="http://schema.org/Thing"><a href="/categories/读书笔记/" itemprop="url" rel="index"><span itemprop="name">读书笔记</span></a></span>

                
                
              
            </span>
          

          

          
          

          

          

          

        </div>
      </header>
    

    
    
    
    <div class="post-body" itemprop="articleBody">

      
      

      
        <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/hint.css/2.4.1/hint.min.css"><h1 id="计算机视觉"><a href="#计算机视觉" class="headerlink" title="计算机视觉"></a>计算机视觉</h1><h2 id="基础"><a href="#基础" class="headerlink" title="基础"></a>基础</h2><h3 id="Pipeline"><a href="#Pipeline" class="headerlink" title="Pipeline"></a>Pipeline</h3><ul>
<li>输入数据（图像）</li>
<li>预处理（Noise reduction; color correction; scaling）</li>
<li>selecting areas of interest(face recognition; image cropping)</li>
<li>feature extraction(finding facial markers(mouth eyes))</li>
<li>prediction/recognition(facial expression recognition; emotion prediction)</li>
</ul>
<p>一个苹果照片信息：color detail; shape detail; lighting conditions; size based on distance</p>
<p>像素（pixel）网格构成图片</p>
<p>像素（0-255），图片原点在左上。</p>
<p><code>matplotlib.image</code> 读取图像<br><code>cv2</code> 计算机视觉库opencv<br><code>%matplotlib qt</code> 使图像交互式窗口弹出</p>
<p>灰度图和彩色图</p>
<h2 id="color-threshold"><a href="#color-threshold" class="headerlink" title="color threshold"></a>color threshold</h2><p>蓝幕，绿幕替换背景<br>OpenCV将彩色图像读取为BGR（蓝绿红）图像<br>图片变换时记得<code>np.copy</code>不会改变原图</p>
<ul>
<li>定义分离颜色的上下限（threshold）</li>
<li>create a mask <code>inRange</code></li>
<li>删除蓝幕</li>
<li>添加新背景</li>
</ul>
<p>color spaces<br>RGB HSV HLS</p>
<h2 id="High-pass-filter-高通滤波器"><a href="#High-pass-filter-高通滤波器" class="headerlink" title="High-pass filter(高通滤波器)"></a>High-pass filter(高通滤波器)</h2><p>滤波器</p>
<ul>
<li>过滤掉图像中不需要或无关的信息</li>
<li>放大图像的某些特征，如物体边界或其他显著特征</li>
</ul>
<p>高通滤波器</p>
<ul>
<li>锐化图像</li>
<li>强化图像的高频区域（相邻像素强度发生突变的区域）</li>
</ul>
<p>过滤器：矩阵形式存在，通常称为卷积核</p>
<p>高通滤波器的元素一般和为零，否则计算的结果会带有正负权重</p>
<p>Sobel过滤器可分别检测x和y轴方向的强度突变</p>
<p>竖直过滤器：</p>
<p>|-1, 0, 1|<br>|-2, 0, 2|<br>|-1, 0, 1|</p>
<p><code>cv2.filter2D()</code>实施核卷积操作</p>
<p>二值图像： 纯粹的黑白图像</p>
<p><code>cv2.threshold()</code> 设置上下限分离图像</p>
<p>常见的噪声有噪点和模糊的细节，高通过滤器会强化图像里的这些噪声</p>
<h2 id="Low-pass-filters-低通滤波器"><a href="#Low-pass-filters-低通滤波器" class="headerlink" title="Low-pass filters(低通滤波器)"></a>Low-pass filters(低通滤波器)</h2><p>低通滤波器是噪声最常见的解决方式</p>
<ul>
<li>模糊图像或使图像平滑起来</li>
<li>阻挡特定高频部分</li>
</ul>
<p>取相邻像素的均值，从而避免强度突变，特别是小范围突变。（均值过滤器）</p>
<p>均值过滤器进行了归一化，确保图像不会变亮或者变暗</p>
<h3 id="高斯模糊"><a href="#高斯模糊" class="headerlink" title="高斯模糊"></a>高斯模糊</h3><ul>
<li>能模糊图像</li>
<li>又能更好地保存图像边缘的过滤器</li>
</ul>
<p>计算机视觉中最常见的低通过滤器<br>低通过滤器其实就是加权平均法，赋予中心像素最大的权重。周围的像素权重多少主要取决于有多接近中心像素。</p>
<p><code>cv2.GaussianBlur()</code>执行高斯模糊<br>过滤器的维数需要是奇数，才能将图像的每个像素作为核的中心，过滤器越大模糊的范围越大。</p>
<h2 id="edge-detection"><a href="#edge-detection" class="headerlink" title="edge detection"></a>edge detection</h2><p>grayscale  —&gt; low-pass filter  —&gt; high-pass filter  —&gt; binary threshold</p>
<h2 id="canny边缘检测器"><a href="#canny边缘检测器" class="headerlink" title="canny边缘检测器"></a>canny边缘检测器</h2><ol>
<li>使用高斯模糊过滤掉噪声</li>
<li>使用Sobel过滤器确定图像边缘的强度与方向</li>
<li>使用非极大抑制来观察每个检测边缘的强度和方向，选出局部最大像素，从而把最强的边缘绘制成连续的，一个像素宽的细线</li>
<li><p>使用滞后阈值来分离最佳边缘</p>
<ul>
<li>定义一个高阈值，允许强边缘通过</li>
<li>设置一个低阈值，任何低于该阈值的边缘即为若边缘，会被舍弃</li>
<li>位于中间的边缘，只有当其与另一个强边缘相连时，才会得到保留</li>
</ul>
<p>这样，canny通过滞后阈值删除了若边缘，消除了噪声</p>
<p>canny适合检测边界和形状</p>
<p>canny上下限1:2或1:3较合适</p>
<p><code>cv2.Canny()</code>进行canny检测</p>
</li>
</ol>
<h2 id="线检测（霍夫变换）"><a href="#线检测（霍夫变换）" class="headerlink" title="线检测（霍夫变换）"></a>线检测（霍夫变换）</h2><p>图像空间中: 直线 y=mx+b<br>霍夫空间中: 参数空间<br>但是存在斜率不存在问题，所以使用Hesse法线式表示：  </p>
<pre><code>r = xcosθ + ysinθ
</code></pre><p>其中r是原点到直线上最近点的距离，θ是x轴与连接原点和最近点直线之间的夹角。如图1所示。</p>
<p>这个参数(r,θ)平面有时被称为霍夫空间。</p>
<p>多个近似在一条直线上的短小的线段转换到霍夫空间后，变为相交的正弦曲线。</p>
<p><code>cv2.HoughLineP()</code></p>
<h2 id="Haar-Cascades"><a href="#Haar-Cascades" class="headerlink" title="Haar Cascades"></a>Haar Cascades</h2><p>Haar特征:<br>就是梯度测量值，测量时算法会观察某个特定像素区域周围的矩形区域，以某种方式减去这些区域，从而计算像素差。</p>
<ul>
<li>edges</li>
<li>lines</li>
<li>rectangle patterns</li>
</ul>
<h2 id="Type-of-features"><a href="#Type-of-features" class="headerlink" title="Type of features"></a>Type of features</h2><ol>
<li>edges(边缘): 高强度梯度区域</li>
<li>corners(角点): 两个边缘相交的地方</li>
<li>blobs(斑点): 按特征划分的区域，可能是强度特别高或者特别低的区域，或是具备独特纹理的区域</li>
</ol>
<p>角点：可重复性最高的特征</p>
<h2 id="corner-detections"><a href="#corner-detections" class="headerlink" title="corner detections"></a>corner detections</h2><p>gradient<br>magnitude: 梯度强度的度量值<br>direction: 强度变化的方向</p>
<ol>
<li>许多角点检测器会取一个窗口，并在梯度图像不同区域里上下左右移动这个窗口</li>
<li>检查窗口梯度方向和幅度是否有突变</li>
</ol>
<p><code>cv2.cornerHarris()</code></p>
<p><code>cv2.dilate()</code>膨胀放大明亮的区域</p>
<h2 id="image-Contours"><a href="#image-Contours" class="headerlink" title="image Contours"></a>image Contours</h2><p>示例中，对一个手掌进行描廓。<br>首先转换为灰度图，然后用逆二进制阈值，把手显示为白色，生成二值图像。<br>然后要找出轮廓，<code>cv2.findContours()</code>，轮廓检索模式（此处使用的是树模式）<br>绘制轮廓，使用<code>cv2.drawContours()</code></p>
<h2 id="K均值聚类"><a href="#K均值聚类" class="headerlink" title="K均值聚类"></a>K均值聚类</h2><p>Separates an image into segments by clustering data points that have similar traits.</p>
<ol>
<li>随机选择k个中心点</li>
<li>把各像素值赋给最近的中心点所在的簇</li>
<li>然后K均值会分别取各簇所有RGB值的实际平均数，然后将三个中心点更新为相对应的均值</li>
<li>重复这个过程，根据调整后的新中心点，形成新簇，然后再次计算簇均值，更新中心点。直到收敛。</li>
</ol>
<p><code>cv2.kmeans()</code></p>

      
    </div>

    

    
    
    

    

    
      
    
    

    

    <footer class="post-footer">
      
        <div class="post-tags">
          
            <a href="/tags/计算机视觉/" rel="tag"><i class="fa fa-tag"></i> 计算机视觉</a>
          
            <a href="/tags/深度学习/" rel="tag"><i class="fa fa-tag"></i> 深度学习</a>
          
        </div>
      

      
      
      

      
        <div class="post-nav">
          <div class="post-nav-next post-nav-item">
            
              <a href="/2019/03/24/手机快充技术整理/" rel="next" title="手机快充技术整理">
                <i class="fa fa-chevron-left"></i> 手机快充技术整理
              </a>
            
          </div>

          <span class="post-nav-divider"></span>

          <div class="post-nav-prev post-nav-item">
            
              <a href="/2019/03/29/孤独游戏/" rel="prev" title="孤独游戏">
                孤独游戏 <i class="fa fa-chevron-right"></i>
              </a>
            
          </div>
        </div>
      

      
      
    </footer>
  </div>
  
  
  
  </article>


  </div>


          </div>
          

        </div>
        
          
  
  <div class="sidebar-toggle">
    <div class="sidebar-toggle-line-wrap">
      <span class="sidebar-toggle-line sidebar-toggle-line-first"></span>
      <span class="sidebar-toggle-line sidebar-toggle-line-middle"></span>
      <span class="sidebar-toggle-line sidebar-toggle-line-last"></span>
    </div>
  </div>

  <aside id="sidebar" class="sidebar">
    <div class="sidebar-inner">

      

      
        <ul class="sidebar-nav motion-element">
          <li class="sidebar-nav-toc sidebar-nav-active" data-target="post-toc-wrap">
            文章目录
          </li>
          <li class="sidebar-nav-overview" data-target="site-overview-wrap">
            站点概览
          </li>
        </ul>
      

      <div class="site-overview-wrap sidebar-panel">
        <div class="site-overview">
          <div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
            
              <img class="site-author-image" itemprop="image" src="/images/avatar.png" alt="风絮">
            
              <p class="site-author-name" itemprop="name">风絮</p>
              <div class="site-description motion-element" itemprop="description">柴门闻犬吠，风雪夜归人</div>
          </div>

          
            <nav class="site-state motion-element">
              
                <div class="site-state-item site-state-posts">
                
                  <a href="/archives/">
                
                    <span class="site-state-item-count">10</span>
                    <span class="site-state-item-name">日志</span>
                  </a>
                </div>
              

              
                
                
                <div class="site-state-item site-state-categories">
                  
                    
                      <a href="/categories/">
                    
                  
                    
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                    <span class="site-state-item-count">5</span>
                    <span class="site-state-item-name">分类</span>
                  </a>
                </div>
              

              
                
                
                <div class="site-state-item site-state-tags">
                  
                    
                      <a href="/tags/">
                    
                  
                    
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                    <span class="site-state-item-count">10</span>
                    <span class="site-state-item-name">标签</span>
                  </a>
                </div>
              
            </nav>
          

          
            <div class="feed-link motion-element">
              <a href="/atom.xml" rel="alternate">
                <i class="fa fa-rss"></i>
                RSS
              </a>
            </div>
          

          

          
            <div class="links-of-author motion-element">
              
                <span class="links-of-author-item">
                  
                  
                    
                  
                  
                    
                  
                  <a href="https://github.com/duolk" title="GitHub &rarr; https://github.com/duolk" rel="noopener" target="_blank"><i class="fa fa-fw fa-github"></i>GitHub</a>
                </span>
              
            </div>
          

          

          
          

          
            
          
          

        </div>
      </div>

      
      <!--noindex-->
        <div class="post-toc-wrap motion-element sidebar-panel sidebar-panel-active">
          <div class="post-toc">

            
            
            
            

            
              <div class="post-toc-content"><ol class="nav"><li class="nav-item nav-level-1"><a class="nav-link" href="#计算机视觉"><span class="nav-number">1.</span> <span class="nav-text">计算机视觉</span></a><ol class="nav-child"><li class="nav-item nav-level-2"><a class="nav-link" href="#基础"><span class="nav-number">1.1.</span> <span class="nav-text">基础</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#Pipeline"><span class="nav-number">1.1.1.</span> <span class="nav-text">Pipeline</span></a></li></ol></li><li class="nav-item nav-level-2"><a class="nav-link" href="#color-threshold"><span class="nav-number">1.2.</span> <span class="nav-text">color threshold</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#High-pass-filter-高通滤波器"><span class="nav-number">1.3.</span> <span class="nav-text">High-pass filter(高通滤波器)</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#Low-pass-filters-低通滤波器"><span class="nav-number">1.4.</span> <span class="nav-text">Low-pass filters(低通滤波器)</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#高斯模糊"><span class="nav-number">1.4.1.</span> <span class="nav-text">高斯模糊</span></a></li></ol></li><li class="nav-item nav-level-2"><a class="nav-link" href="#edge-detection"><span class="nav-number">1.5.</span> <span class="nav-text">edge detection</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#canny边缘检测器"><span class="nav-number">1.6.</span> <span class="nav-text">canny边缘检测器</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#线检测（霍夫变换）"><span class="nav-number">1.7.</span> <span class="nav-text">线检测（霍夫变换）</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#Haar-Cascades"><span class="nav-number">1.8.</span> <span class="nav-text">Haar Cascades</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#Type-of-features"><span class="nav-number">1.9.</span> <span class="nav-text">Type of features</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#corner-detections"><span class="nav-number">1.10.</span> <span class="nav-text">corner detections</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#image-Contours"><span class="nav-number">1.11.</span> <span class="nav-text">image Contours</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#K均值聚类"><span class="nav-number">1.12.</span> <span class="nav-text">K均值聚类</span></a></li></ol></li></ol></div>
            

          </div>
        </div>
      <!--/noindex-->
      

      
        <div class="back-to-top">
          <i class="fa fa-arrow-up"></i>
          
            <span id="scrollpercent"><span>0</span>%</span>
          
        </div>
      

    </div>
  </aside>
  


        
      </div>
    </main>

    <footer id="footer" class="footer">
      <div class="footer-inner">
        <div class="copyright">&copy; <span itemprop="copyrightYear">2019</span>
  <span class="with-love" id="animate">
    <i class="fa fa-user"></i>
  </span>
  <span class="author" itemprop="copyrightHolder">风絮</span>

  

  
</div>









        








        
      </div>
    </footer>

    

    

    

    
  </div>

  

<script>
  if (Object.prototype.toString.call(window.Promise) !== '[object Function]') {
    window.Promise = null;
  }
</script>


























  
  <script src="/lib/jquery/index.js?v=2.1.3"></script>

  
  <script src="/lib/velocity/velocity.min.js?v=1.2.1"></script>

  
  <script src="/lib/velocity/velocity.ui.min.js?v=1.2.1"></script>


  


  <script src="/js/src/utils.js?v=7.0.1"></script>

  <script src="/js/src/motion.js?v=7.0.1"></script>



  
  


  <script src="/js/src/affix.js?v=7.0.1"></script>

  <script src="/js/src/schemes/pisces.js?v=7.0.1"></script>



  
  <script src="/js/src/scrollspy.js?v=7.0.1"></script>
<script src="/js/src/post-details.js?v=7.0.1"></script>



  


  <script src="/js/src/next-boot.js?v=7.0.1"></script>


  

  

  

  



  




  

  

  
  

  
  

  


  

  

  

  

  

  

  

  

  

  

  

<script src="/live2dw/lib/L2Dwidget.min.js?094cbace49a39548bed64abff5988b05"></script><script>L2Dwidget.init({"model":{"jsonPath":"/live2dw/assets/shizuku.model.json"},"display":{"position":"left","width":150,"height":300},"mobile":{"show":true},"log":false,"pluginJsPath":"lib/","pluginModelPath":"assets/","pluginRootPath":"live2dw/","tagMode":false});</script><!-- hexo-inject:begin --><!-- hexo-inject:end --></body>
</html>
